home *** CD-ROM | disk | FTP | other *** search
/ Programmer Power Tools / Programmer Power Tools.iso / clipper / nannws31.arc / LISTIT.PRG < prev    next >
Text File  |  1988-08-09  |  2KB  |  81 lines

  1. * Function: ListIt
  2. * Author:   Steve Hillbourne
  3. * Version:  Clipper Summer 87
  4. * Copyright (c) 1988 Nantucket Corp.
  5. *
  6. * Syntax:   ListIt([array])  
  7. * Purpose:  To list all or selected fields in a database.
  8.  
  9. FUNCTION ListIt
  10. PRIVATE n, field
  11.  
  12. * Check for parameter.
  13. IF PCOUNT() = 1
  14.    PARAMETER array
  15.    n = LEN(array)
  16.  
  17. * Check for an unidentfied array element 
  18. * and disregard the rest of array.
  19.    FOR x = 1 TO n
  20.       IF TYPE("array[x]") = "U"
  21.          n = x -1               
  22.       EXIT
  23.    ENDIF
  24.    NEXT
  25. ELSE
  26.  
  27. * Create array of fieldnames.
  28.    n = FCOUNT()
  29.    DECLARE array[n]
  30.    AFIELDS(array)
  31. ENDIF
  32. CLEAR
  33. GO TOP
  34.  
  35. * Print headings.
  36.  
  37. ? "Record#"," "
  38. FOR x = 1 TO n
  39.    field = array[x]
  40.    DO CASE 
  41.       CASE TYPE(field) = "C"
  42.          ?? field + SPACE(LEN(&field) - LEN(TRIM(field))) + " "
  43.       CASE TYPE(field) = "D"
  44.          ?? field + SPACE(LEN(DTOC(&field)) - ;
  45.               LEN(TRIM(field))) + " "
  46.       CASE TYPE(field) = "N"
  47.          ?? SPACE(LEN(STR(&field))- len(trim(field))) + ;
  48.               field + " "
  49.       CASE TYPE(field) = "M"
  50.          ?? field + SPACE(4 - LEN(field)  )  + " "
  51.       CASE TYPE(field) = "L"
  52.          ?? field + SPACE(3 - LEN(TRIM(field))) + " "
  53.    ENDCASE
  54. NEXT
  55.  
  56. * Print records.
  57. DO WHILE .NOT. EOF()
  58.    ?  STR(RECNO(),7), IF(DELETED(), "*"," ")
  59.    FOR x = 1 TO n
  60.       field = array[x]
  61.       DO CASE 
  62.          CASE TYPE(field) = "C"
  63.             ?? &field + SPACE(LEN(TRIM(field)) - ;
  64.                  LEN(&field)) + " "
  65.           CASE TYPE(field) = "D"
  66.             ?? DTOC(&FIELD) + " "  
  67.           CASE TYPE(field) = "N"
  68.              ?? SPACE(LEN(TRIM(field)) - LEN(STR(&field))) + ;
  69.                   STR(&field)  + " "
  70.           CASE TYPE(field) = "M"
  71.              ?? "Memo" + SPACE(LEN(field) - 4) + " "
  72.           CASE TYPE(field) = "L"
  73.              ?? IF(&field, ".T.", ".F." ) + ;
  74.                   SPACE(LEN(field) - 3) + " "
  75.       ENDCASE
  76.    NEXT
  77.    SKIP
  78. ENDDO
  79.  
  80. RETURN ("")
  81.